Montaje y pulido de niveles

Sesión 1

Profesor

  • Carlos León <cleon@ucm.es>
  • Profesor FdI
  • Docencia MVJ: Arquitectura UE, prácticas diseño de niveles, tutor de proyectos
  • Videojuegos, Creatividad Computacional y Sistemas Cognitivos
  • Grupo de investigación NIL
  • Despacho 444 FdI

Introducción y objetivos

Motivación

Uno de los roles más comunes en el diseño de videojuegos es el de creación de mapas/niveles, este módulo está pensado para reforzar vuestra habilidad como creadores de estos contenido

Objetivos

Saber crear de principio a fin niveles con una buena base técnica (objetivo, ideación, despliegue, comprobación…)

  1. Poner en práctica la teoría para crear niveles (en contraposición a mecánicas)
  2. Pulir nivel para jugabilidad y objetivos
  3. Hacer QA útil y aplicarlo

En concreto

Creación por parejas de 3 niveles para:

  • Un scroll lateral de saltos
  • Un top-down dual-stick
  • Un FPS

Las implementaciones disponibles ya os la damos hechas

No hace falta que camibiéis nada, pero no está prohibido

Están basadas en contenido core de UE para facilitar documentación y modificación

La pareja ideal

Tenéis libertad para crear parejas, pero los equipos en los que se combine capacidad de programación con capacidad de diseño, generalemente, funcionarán mejor

Pulido

Los niveles no sólo tienen que ser jugables, también dar buena sensación y buen equilibrado

Para ello haremos un poco de «trampa», permitiendo cambiar los parámetros de las mecánicas

QA

Probaremos mucho nuestro juego, y una vez nos satisfaga, haremos evaluación cruzada

Los resultados de esta evaluación deberán servir para retocar

Aspectos opcionales

  • Programar BP en UE4 (aunque podremos)
  • Pulir aspectos visuales o sonoros (que son importantes)

Cómo hacer cada nivel

Proceso

  1. Redactar el concepto general del nivel, destacando los objetivos
  2. Estudio de alternativas similares en juegos (no hace falta hacerlo exhaustivo)
  3. Listado de elementos principales (geometría, dinámicas…) con los que se va a conseguir trabajar los objetivos, justificados y de dónde se saca la inspiración
  1. Geometría/mapa/esquema «en papel» del nivel, con objetos y enemigos, justificando cada parte
  2. Implementación en UE
  1. Pruebas y pulido, documentado. Entre otras preguntas (todas las que se puedan) hay que saber:
    1. ¿Cuánto tarda de media un jugador que juega por primera vez? ¿Uno que sepa?
    2. ¿Dónde suele morir o atascarse? ¿Por qué?
    3. ¿El jugador cumple objetivos de nivel?
    4. ¿Qué ocurre cuando modificamos los parámetros de nivel?
    5. ¿Está ocurriendo lo que queríamos que ocurriera (dinámicas, uso de elementos)?
  1. Aplicación de los resultados de las pruebas en el prototipo, explicando qué se ha hecho y por qué
    1. ¿Cuántos usuarios?
    2. ¿Qué hemos descubierto?
    3. ¿Cómo hemos pasado los hechos a datos?
    4. ¿Cómo se han pasado los datos a modificaciones?

Romper los juegos

Evidentemente, cuando hagamos las pruebas con los equipos de nuestros compañeros, nuestra labor será que todo falle y vaya mal

Es la única manera de mejorar el gameplay

Entrega

Un .zip con:

  • Un documento (PDF, preferiblemente) con los puntos 1, 2, 3, 4, 6 y 7. El documento puede ser conciso y sencillo, lo importante es que estén las ideas. No hace falta ni escribir mucho ni dedicarle esfuerzo de maquetación
  • El proyecto de UE con la implementación (punto 5)

Notas para todas las prácticas

  • Mando

    Aunque no es estrictamente necesario, se pueden traer mandos (gamepads) para probar los juegos, principalmente para el dual-stick

  • Edición de parámetros

    Todos los parámetros de personajes, nivel y demás que se puedan usar para equilibrar están puestos en la categoría «Game» en UE

Whiteboxing

Whiteboxing es el proceso de crear los volúmenes de un nivel, sin tener en cuenta los detalles (las mallas 3D)

(También lo veréis como greyboxing, block out, brushes o brush actors)

Es el borrador de un nivel, en el que crearemos y experimentaremos con es espacio, distancias, tamaños, etc

Es una técnica muy buena para saber qué se quiere antes de «vestir» el nivel entero:

  • Podremos iterar rápidamente (sin esperar al contenido artístico)
  • Nos permite «aislarnos» de la parte estética
  • Podemos probar las mecánicas y dinámicas

Introducción al whiteboxing en UE

Veamos algunos aspectos básicos para crear geometría en UE

(Más información en la documentación de UE)

Figura 1: En UE se incluye la geometría como cualquier otro objeto de escena

Manipulación directa

Figura 2: Los objetos de whiteboxing se pueden rotar, mover y escalar como cualquier Actor

Colisión

Figura 3: Los objetos tendrán, directamente, una malla de colisión que corresponderá a su geometría

En teoría se puede cambiar la colisión con solidity, pero no funciona bien

Edición de geometría

Figura 4: Podemos pasar al modo de edición de geometría a través del menú superior

Figura 5: En este modo (Brush Editing) los vértices de los objetos son editables y puedo cambiar la forma de las mallas

Operaciones booleanas

Figura 6: Las operaciones booleanas me permiten «sumar» o «restar»

Colores en whiteboxing

Es muy útil añadir colores (materiales) a los bloques para indicar su semática:

  • Verde: seguro
  • Rojo: dañino
  • Amarillo: objetivo
  • Azul: objeto

Figura 7: Para colorear geometría brush, elegimos el objeto, luego todas sus caras (Shift-J) y arrastramos material

Scroll lateral

Introducción

En esta parte se va a trabajar en la creación de un nivel para un juego de mecánicas clásicas y sencillas de arcade desplazamiento lateral

Sigue un sistema básico 2D en un nivel de desplazamiento abierto (se puede ir a cualquier parte dentro de la zona delimitada)

Celeste

  • Exigencia muy alta de nivel
  • Pero muy poco castigo al fallar
  • Poca rejugabilidad (si tienes mucho nivel, el principio es muy fácil)
  • Añade mecánicas + elementos de nivel
    • Doble y triple «salto» buenos para corregir

Super Mario World

  • SMW tiene infinidad de enemigos y mecánicas que van evolucionando
  • Mucho contenido, mucho opcional (rejugabilidad de niveles)
  • Habilidad de movimiento
    • No hay doble salto, hay que hacerlo bien a la primera
  • En general hay tiempo de sobra

Super Ghouls ’n Ghosts

  • Salto sin movimiento: es importante, en un side-scroller, que nos podamos mover durante el salto. Es irreal, pero evita que tengamos que planificar un salto y da más velocidad al juego (y posibilidades)
    • Hay un doble salto que permite corregir
  • Añade disparo/mecánicas lucha
  • Mecánicas muy constantes

Elementos y mecánicas de la práctica

Desplazamiento

Desplazamiento lateral sencillo (izquierda/derecha), a una velocidad parametrizable

Agacharse

El personaje puede agacharse, reduciendo su altura a un multiplicador (parámetro)

Salto

Salto sencillo, de altura parametrizable

Es posible añadir movimiento lateral al salto (es decir, cambiar la dirección en el aire), parametrizable respecto a la velocidad básica en el suelo

Varios saltos

En el atributo Possible jumps se puede cambiar el número de saltos que se pueden dar en el aire (1, 2, 3…)

Coger y lanzar objetos

Para cambiar la potencia de lanzamiento, se puede cambiar la variable Throw strength

Daño

Tenemos \(N\) puntos de vida (configurable como Life, puede ser que \(N=1\)), y el contacto con los enemigos que no daña nos resta puntos

El daño en configurable en el atributo Damage

Para cambiar la vida inicial, tenemos la variable Life (en el componente Damageable)

Caídas

Si caemos por un agujero, perdemos todos los puntos de vida y la partida se reinicia (blueprint Deep)

Gemas

Las gemas son coleccionables para el jugador

Se pueden usar como objetivo (maximizar gemas cogidas), o como condición para eventos

Pulsadores

Al ser tocados, un elemento del escenario desaparece (¿una barrera?)

Es configurable en el atributo Barrier

Enemigos

  • Vigía

    El vigía va hacia derecha o izquierda hasta que se tope con un obstáculo (y entonces se da la vuelta) o hasta que caiga de una plataforma a otra inferior (y sigue moviéndose) o al vacío, y muere

Eliminar enemigos

Podemos eliminar enemigos de varias formas (cada golpe puede terner hacer distinto daño):

  • Haciendo que caigan en trampas (ver Enemigos)
  • Lanzándoles objetos que les dañen

Cuando un enemigo es eliminado, desaparece de la escena

Fin del nivel

Figura 8: El nivel se acaba cuando llegamos al «portal de salida»

Objetivos

  • Crear un nivel de scroll lateral de 2-3 minutos de duración (sin speed run)
  • Nivel «lineal» (no necesariamente la geometría, pero sí el desarrollo: no se pasa 2 veces por un sitio)
  • Todas las mecánicas deberán ser usadas en el nivel
  • Justificar y explicar las razones y el impacto en el jugador de cada decisión de diseño

Cosas que poner en práctica

  • Gestión de tiempo de nivel
  • Bloqueo de avance con geometría/bloqueo
  • Desafío y distancias salto/alcance, midiendo dificultad
  • Ritmo desafío/descanso
  • Muestra de desafío y solución (enseñar bloque y enemigo antes de resolver)

Concepto de nivel

Ayuda mucho dar un concepto único de nivel:

  • Objetivo de nivel: ¿para qué es este nivel?
  • Idea base: ¿qué idea queremos desarrollar sobre él?
  • Desafío base: ¿qué es difícil en el nivel?
  • Evolución: ¿cómo es el desenlace del nivel?

Opcional

  • Doble salto (parametrizable con el atributo Possible jumps)
    • Que el segundo salto sea más corto
  • Es posible modificar, añadir o quitar mecánicas, pero siempre de forma justificada y consultándolo antes. El juego deberá ser fundamentalmente el mismo
  • Hacer un nivel más largo, o más niveles
  • Comparativa detallada con otros niveles de juegos con mecánicas comparables
  • Que la velocidad del jugador dependa de si lleva o no un objeto
  • Añadir tiempo (variables Time y HasTime en el game mode)

Sesión 2: Terminar prototipo 1, pruebas y captura de resultados

Compartir pantalla para toda la clase

Revisión inicial

Cada grupo:

  • ¿Hemos definido objetivos/ideas de nivel?
  • ¿Nos satisface el concepto?
  • ¿Se cumplen?

Preparación de pruebas

  1. Preparar prototipo que pueda ser probado por otros equipos
  2. Preparar cosas concretas que experimentar:
    • Lista de preguntas, averiguaciones, observaciones
    • Saber para qué quiero hacer cada pregunta, cómo voy a aplicar lo que vea

Pruebas cruzadas (1h)

  • Hacer lista de grupos (poner un nombre al grupo/nivel)
  • De cada grupo:
    • Un miembro irá a probar juegos
    • Otro se quedará a recibir testers (luego se cambia)
  • Tengamos cuidado con distancia
  • Si alguien no se siente cómodo con moverse, no está obligado

Conclusiones y plan

  • Redactar lo que hemos averiguado
  • Redactar lo que vamos a hacer (un plan concreto), y cómo esperamos que funcione

Seguir con el proyecto

Sesión 3: Aplicación de resultados, retoques, informe y presentación

Qué incluir en el informe final

  • Tiempos (mínimo, máximo, medio) que se estimaban
  • Tiempos reales (apuntar lo que tarda cada jugador, y cuántas veces ha jugado, al menos)
  • Dificultad esperada vs. dificultad percibida
  • Entrada: ¿es óptima?
  • Todo lo interesante: ¿hacen los jugadores lo que yo quería?
  • ¿Las dinámicas que yo quería están en el juego?

Y, en general, todo lo relevante

Evaluación de niveles

Cada grupo hará un pequeño informe (rápido y conciso) de cada uno de los otros niveles:

  • Cosas reseñables
  • Limitaciones encontradas
  • Bugs de nivel

Votación

Además, cada grupo elegirá un nivel favorito (¡es válido votarse a uno mismo!)

Finalizando (2,5h)

  • Preparar el informe final
  • Retocar el juego para pulirlo y refinarlo
  • Hacer pruebas finales
    • Rellenar informe para vuestro juego
    • Elegir el nivel que más os gusta (y por qué)

Exposición global a la clase (25m)

Votaciones y entrega de premios (5m)